<?php
/**
 * Controlador global da aplicação, seta algumas configurações padrões da aplicação.
 * Todos os controladores da aplicação devem extendê-los. Extende o controlador base do Code Igniter.
 * @author Jota Carlos e Renato Lenz @ PC4 Team
 * @package PC4_Controlador
 */
class PC4_Controlador_APP extends Controller {

	protected $filtros;
	
	/**
	 * Construtor
	 * @param $filtros - array de filtros a serem aplicados
	 */
	function __construct($filtros = array()){
		parent::__construct(); // Chama o construtor da class Controller do CI.
//d($filtros);

		// força o charset para UTF-8
		header("Content-type: text/html; charset=UTF-8");
		
		// carrega o layout
		$this->load->library('layout');
		
		$this->layout->app_name = $this->config->item('app_name');
		$this->layout->title = $this->config->item('title');

		// carrega o caminho em Javascript
		$this->layout->addJS('app/config.path.js');
		
		// executa os filtros
		if (is_array($filtros)) {
			$this->filtros = $filtros;
		}
		else {
			$this->filtros = array($filtros);
		}
		$this->filtra();
	}
	
	/**
	 * Altera o título da janela mantendo o nome da aplicação. 
	 * @param string $titulo 
	 * @deprecated Utilizar Layout->setTitle()
	 */
	protected function setTitle($title)  {
		$this->title = substr($this->title, 0, strrpos($this->title, '|') + 2) . $title;
	}

	/**
	 * Aplica os filtros
	 */
	private function filtra() {
		if (!empty($this->filtros)) {
			foreach ($this->filtros as $filtro) {
				$filtro->filtra($this);
			}
		}
	}
	
}